/**
 * Builder.h
 * Coyright (c) 2009 Xiaofeng Gu. All Rights Reserved.
 * Author : Xiaofeng Gu
 *
 * Creation Data : 2009/06/21
 */
#pragma once

#include "SKPipeline.h"

class CTransNode;
class CKnot;


class CBuilderProcessCard
{
public:
	CBuilderProcessCard() : m_pFamiles(NULL) {}
	virtual~ CBuilderProcessCard() {}

	void			SetFamilies(Families* pFamiles) { m_pFamiles = pFamiles; }
	Families*		GetFamilies() { return m_pFamiles; }

private:
	Families*		m_pFamiles;
};


class CBuilder : public CSKDistributor
{
public:
	DECALRE_INTERFACE_PART(OnExecute);

	CBuilder(ISKPipeline* pNextProcess, CProcessDraft* pData)
		: CSKDistributor(pNextProcess, pData)
	{}

	virtual ~CBuilder() {}

protected:
	void					Build(CTransNode* pNode);


private:
	CKnot*					m_pKnot;
	double					m_min[3];
	double					m_max[3];
};